home *** CD-ROM | disk | FTP | other *** search
- // **********************************************
- // File: MENU.CPP
- // Menu management module
-
- #include "muzika.h"
- #include "menu.h"
-
- HMENU hMainMenu; // The main menu handle
-
- // **********************************************
- // ProcessMenu responds to a menu selection, which the user makes,
- // calling the appropriate functions accordingly.
-
- BOOL ProcessMenu(WORD item)
- {
- FARPROC lpDialog;
-
- switch (item) {
- case M_FILE_NEW:
- // The user selected "File/New...":
- // create the relevant dialog box
- if (!AskSave())
- return TRUE;
- lpDialog = MakeProcInstance((FARPROC) DialogNew, hInst);
- DialogBox(hInst, "D_FILENEW", hMainWnd, lpDialog);
- FreeProcInstance(lpDialog);
- return TRUE;
-
- case M_FILE_OPEN:
- // The user selected "File/Open...":
- // create the relevant dialog box
- lpDialog = MakeProcInstance((FARPROC) DialogOpen, hInst);
- DialogBox(hInst, "D_FILEOPEN", hMainWnd, lpDialog);
- FreeProcInstance(lpDialog);
- return TRUE;
-
- case M_FILE_SAVE:
- // The user selected "File/Save":
- // call the Save function in FILE.CPP
- Save();
- return TRUE;
-
- case M_FILE_SAVEAS:
- // The user selected "File/Save As...":
- // create the relevant dialog box
- lpDialog = MakeProcInstance((FARPROC) DialogSaveAs, hInst);
- DialogBox(hInst, "D_FILESAVEAS", hMainWnd, lpDialog);
- FreeProcInstance(lpDialog);
- return TRUE;
-
- case M_FILE_CREATEMIDI:
- // The user selected "File/Create MIDI...":
- // create the relevant dialog box
- lpDialog = MakeProcInstance((FARPROC) DialogCreateMIDI, hInst);
- DialogBox(hInst, "D_FILECREATEMIDI", hMainWnd, lpDialog);
- FreeProcInstance(lpDialog);
- return TRUE;
-
- case M_PRINT:
- // The user selected "Print":
- // call the PrintEditWindow function in PRINT.CPP
- PrintEditWindow();
- return TRUE;
-
- case M_LAYOUT_PARTS:
- // The user selected "Layout/Parts...":
- // create the relevant dialog box
- lpDialog = MakeProcInstance((FARPROC) DialogParts, hInst);
- DialogBox(hInst, "D_LAYOUTPARTS", hMainWnd, lpDialog);
- FreeProcInstance(lpDialog);
- return TRUE;
-
- case M_LAYOUT_PAGE:
- // The user selected "Layout/Page...":
- // create the relevant dialog box
- lpDialog = MakeProcInstance((FARPROC) DialogPage, hInst);
- DialogBox(hInst, "D_LAYOUTPAGE", hMainWnd, lpDialog);
- FreeProcInstance(lpDialog);
- return TRUE;
-
- case M_LAYOUT_REFORMAT:
- // The user selected "Layout/Reformat":
- // call the FormatEntirePart function in FORMAT.CPP,
- if (!scoreDisplay)
- FormatEntirePart();
- return TRUE;
-
- case M_SYMBOLS_NOTES:
- case M_SYMBOLS_KEYS:
- case M_SYMBOLS_BEATS:
- case M_SYMBOLS_BARS:
- case M_SYMBOLS_LOUDNESS:
- case M_SYMBOLS_TEXT:
- case M_SYMBOLS_BLOCK:
- // The user selected a symbols set:
- // check the appropriate menu item and call the SelectSymbolSet
- // function in SYMBOLS.CPP
- CheckMenuItem(GetSubMenu(hMainMenu, M_SYMBOLS),
- activeSymbolSet+M_SYMBOLS_NOTES-1, MF_UNCHECKED);
- CheckMenuItem(GetSubMenu(hMainMenu, M_SYMBOLS),
- item, MF_CHECKED);
- SelectSymbolSet(item-M_SYMBOLS_NOTES+1);
- return TRUE;
-
- case M_HELP_ABOUT:
- // The user selected "Help/About...":
- // create the relevant dialog box
- lpDialog = MakeProcInstance((FARPROC) DialogAbout, hInst);
- DialogBox(hInst, "D_ABOUT", hMainWnd, lpDialog);
- FreeProcInstance(lpDialog);
- return TRUE;
- }
-
- return FALSE;
- }
-
- // **********************************************
- // InitializeMenu enables (when enabled=TRUE) or grays out
- // (when enabled=FALSE) several menu items, which are not
- // relevant as long as no melody exists in the editor memory.
-
- void InitializeMenu(BOOL enabled)
- {
- EnableMenuItem(GetSubMenu(hMainMenu, M_FILE),
- M_FILE_SAVE, enabled ? MF_ENABLED : MF_DISABLED | MF_GRAYED);
- EnableMenuItem(GetSubMenu(hMainMenu, M_FILE),
- M_FILE_SAVEAS, enabled ? MF_ENABLED : MF_DISABLED | MF_GRAYED);
- EnableMenuItem(GetSubMenu(hMainMenu, M_FILE),
- M_FILE_CREATEMIDI, enabled ? MF_ENABLED : MF_DISABLED | MF_GRAYED);
- EnableMenuItem(hMainMenu, M_PRINT,
- (enabled ? MF_ENABLED : MF_DISABLED | MF_GRAYED) | MF_BYCOMMAND);
- EnableMenuItem(hMainMenu, M_LAYOUT,
- (enabled ? MF_ENABLED : MF_DISABLED | MF_GRAYED) | MF_BYPOSITION);
- DrawMenuBar(hMainWnd);
- }
-